package com.kuangjia.conferenceroomrental.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kuangjia.conferenceroomrental.entity.Room;

import java.util.List;

/**
 * 会议室服务接口
 */
public interface RoomService {
    
    /**
     * 创建会议室
     */
    Room createRoom(Room room);
    
    /**
     * 根据ID获取会议室
     */
    Room getRoomById(Long id);
    
    /**
     * 获取所有会议室
     */
    List<Room> getAllRooms();
    
    /**
     * 分页获取所有会议室
     */
    IPage<Room> getRoomsByPage(Page<Room> page);
    
    /**
     * 获取所有可用会议室
     */
    List<Room> getAvailableRooms();
    
    /**
     * 分页获取所有可用会议室
     */
    IPage<Room> getAvailableRoomsByPage(Page<Room> page);
    
    /**
     * 根据容量获取会议室
     */
    List<Room> getRoomsByCapacity(Integer capacity);
    
    /**
     * 分页根据容量获取会议室
     */
    IPage<Room> getRoomsByCapacityPage(Page<Room> page, Integer capacity);
    
    /**
     * 更新会议室
     */
    Room updateRoom(Room room);
    
    /**
     * 删除会议室
     */
    void deleteRoom(Long id);
} 